<?php

/**
 * evaluar_acta actions.
 *
 * @package    Aceptor
 * @subpackage evaluar_acta
 * @author     Your name here
 * @version    SVN: $Id: actions.class.php 23810 2009-11-12 11:07:44Z Kris.Wallsmith $
 */
class evaluar_actaActions extends sfActions
{

 public function preExecute()
 {
     $service = new serviceAceptor();
     date_default_timezone_set($service->getTimezone());

     if(sfConfig::get('app_domain')=='server')
     {
         $simpleSAMLAuth = new SimpleSAML_Auth_Simple('default-sp');
          if (!$simpleSAMLAuth->isAuthenticated())
          {
              $this->redirect('logoutsaml/scriptLogOut');
          }
     }


  }


 /**
  * Executes index action
  *
  * @param sfRequest $request A request object
  */
  public function executeIndex(sfWebRequest $request)
  {
    $this->getUser()->getAttributeHolder()->remove('ses_acta_id');

    $acta_id=$request->getParameter('acta_id');


    $crite = new Criteria();
    $crite->add(TbActaPeer::ID,$acta_id);
    $upd_acta= TbActaPeer::doSelectOne($crite);

    if(is_object($upd_acta))
    {
        $paqueteId = $this->getUser()->getAttribute('ses_paquete_id',null);
        if($paqueteId!=null)
        {
            $test_service = new servicePlanes($paqueteId);
            $respuesta    = $test_service->mostrarDocument($acta_id,'acta');
            if($respuesta["success"])
            {
                    $this->acta = $upd_acta;
                    $criteria = new Criteria();
                    $criteria->add(TbDetalleActaContactoPeer::ACTA_ID,$acta_id);
                    $lst_acta_contacto = TbDetalleActaContactoPeer::doSelect($criteria);
                    $this->lst_acta_contacto = $lst_acta_contacto;

                    $criteria = new Criteria();
                    $criteria->add(TbDetalleActaTareaPeer::ACTA_ID,$acta_id);
                    $lst_acta_tarea = TbDetalleActaTareaPeer::doSelect($criteria);
                    $this->lst_acta_tarea = $lst_acta_tarea;

                    $evaluo_acta="";
                    foreach ($lst_acta_contacto as $row) {
                        if($row->getUsuarioId()==$this->getUser()->getAttribute('ses_user_id')){
                            if($row->getEstado()=='1'){
                                $evaluo_acta="ko";
                            }
                        }
                    }
                    $this->evaluo_acta=$evaluo_acta;

                        // 1 ..... si es paquete free
                        if($paqueteId==1){

                            $this->diferencia = $respuesta["diferencia"];
                            $this->plan = "free";
                        }else{
                            $this->diferencia = null;
                             $this->plan = "pago";
                        }
            }
            else
            {
                  return 'stop';
            }
        }
        else
        {
                 $this->redirect('logoutsaml/scriptLogOut');
        }
    }
    else
    {
         return sfView::ERROR;
    }

  }




  public function executeRespuesta_contacto_update_acta($acta_id)
  {

      $criteria = new Criteria();
      $criteria->add(TbDetalleActaContactoPeer::ACTA_ID,$acta_id);
      $lst_datos = TbDetalleActaContactoPeer::doSelect($criteria);
      $lst_cantidad = TbDetalleActaContactoPeer::doCount($criteria);

      $cont=0;
      $rpta = "";
      foreach ($lst_datos as $row) {
        if($row->getEstado()!='1'){
            $cont++;
        }
      }
      if($cont == $lst_cantidad){
          $rpta = "fin";
      }
      return $rpta;

  }

public function executeDesaprobar_acta_ajax(sfWebRequest $request){

    $service = new serviceAceptor();
    date_default_timezone_set($service->getTimezone());
    $hdd_acta_id=$request->getParameter('hdd_acta_id');
    $hdd_ip_cliente=$request->getParameter('hdd_ip_cliente');

    $chk_rpta_texto=$request->getParameter('chk_rpta_texto');
    $chk_rpta_contactos=$request->getParameter('chk_rpta_contactos');

    $desicion =$request->getParameter('neo');

    $criteria = new Criteria();
    $criteria->add(TbDetalleActaContactoPeer::USUARIO_ID,$this->getUser()->getAttribute('ses_user_id'));
    $criteria->add(TbDetalleActaContactoPeer::ACTA_ID,$hdd_acta_id);
    $upd_acta = TbDetalleActaContactoPeer::doSelectOne($criteria);
    if(is_object($upd_acta)){
        $upd_acta->setEstado('3');
        $upd_acta->setFechaRevision(date('Y-m-j'));
        $upd_acta->setIp($hdd_ip_cliente);
        $upd_acta->setHoraRevision(date('g:i:s'));
        $upd_acta->setFechaHoraRevision(date('Y-m-d H:i:s'));
        $upd_acta->save();
    }

    $crite = new Criteria();
    $crite->add(TbActaPeer::ID,$hdd_acta_id);
    $upd_acta= TbActaPeer::doSelectOne($crite);
    $obj_acta = $upd_acta;

    $rpta = "";
    $rpta = $this->executeRespuesta_contacto_update_acta($hdd_acta_id);

    if($obj_acta->getRespuesta()=='2'){

        if($rpta == "fin"){
          /*  $obj_creator = TbUsuarioPeer::retrieveByPK($obj_acta->getCreadorId());
            // INICIO DE CORREO
            $message = $this->getMailer()->compose();
            $message->setSubject('ACEPTOR - Respuesta de Acta');
            $message->setTo($obj_creator->getCorreo());
            $message->setFrom(array('no-reply@aceptor.com' => 'Practil-Aceptor' ));
            $html = $this->getPartial('evaluar_acta/mensaje', array(
                'rpta'=>'2',
                'tipo'=>'ko',
                'texto'=>$nombre_user));
            $message->setBody($html, 'text/html');
            $this->getMailer()->send($message);
            // FIN DE CORREO */
        }

    }elseif($obj_acta->getRespuesta()=='1'){
        $obj_creator = TbUsuarioPeer::retrieveByPK($obj_acta->getCreadorId());
        $nombre_user = $obj_creator->getNombre().' '.$obj_creator->getApePaterno();
        /* INICIO DE CORREO */
        $message = $this->getMailer()->compose();
        $message->setSubject('ACEPTOR - Respuesta de Acta');
        $message->setTo($obj_creator->getCorreo());
        $message->setFrom(array('no-reply@aceptor.com' => 'Practil-Aceptor' ));
        $html = $this->getPartial('evaluar_acta/mensaje', array(
            'owner'=>$nombre_user,
            'tipo'=>'ko',
            'doc_object'=>$obj_acta,
            'nombre_user'=>$attributes['nombre'][0].' '.$attributes['apellido'][0]));
        $message->setBody($html, 'text/html');
        $this->getMailer()->send($message);
        /* FIN DE CORREO */
    }

    if($rpta == "fin"){
        $criteriaActa= new Criteria();
        $criteriaActa->add(TbActaPeer::ID,$hdd_acta_id);
        $upd_acta = TbActaPeer::doSelectOne($criteriaActa);
        if(is_object($upd_acta))
        {
            $upd_acta->setEstado('2');
            $upd_acta->save();
        }
    }

    if($desicion == 1){
        $this->getUser()->setAttribute('ses_upd_doc','upd_acta/'.$hdd_acta_id.'/'.$chk_rpta_texto.'/'.$chk_rpta_contactos);
        $this->redirect('registrar_documento/index');
    }else{
        $this->redirect('home_login/index');
    }

    $this->getUser()->getAttributeHolder()->remove('ses_acta_id');




}

public function executeAprobo_acta_ajax(sfWebRequest $request)
  {

    $service = new serviceAceptor();
    date_default_timezone_set($service->getTimezone());
    $simpleSAMLAuth = new SimpleSAML_Auth_Simple('default-sp');
    $attributes     = $simpleSAMLAuth->getAttributes();

    $hdd_acta_id=$request->getParameter('hdd_acta_id');
    $hdd_ip_cliente=$request->getParameter('hdd_ip_cliente');

    $criteria = new Criteria();
    $criteria->add(TbDetalleActaContactoPeer::USUARIO_ID,$this->getUser()->getAttribute('ses_user_id'));
    $criteria->add(TbDetalleActaContactoPeer::ACTA_ID,$hdd_acta_id);
    $upd_acta = TbDetalleActaContactoPeer::doSelectOne($criteria);

    $upd_acta->setEstado('2');
    $upd_acta->setFechaRevision(date('Y-m-j'));
    $upd_acta->setIp($hdd_ip_cliente);
    $upd_acta->setHoraRevision(date('g:i:s'));
    $upd_acta->setFechaHoraRevision(date('Y-m-d H:i:s'));
    $upd_acta->save();

    $crite = new Criteria();
    $crite->add(TbActaPeer::ID,$hdd_acta_id);
    $upd_acta= TbActaPeer::doSelectOne($crite);

    $obj_acta = $upd_acta;

    $rpta = "";
    $rpta = $this->executeRespuesta_contacto_update_acta($hdd_acta_id);

    if($obj_acta->getRespuesta()=='2'){

        if($rpta == "fin"){
          /*  $obj_creator = TbUsuarioPeer::retrieveByPK($obj_acta->getCreadorId());
            // INICIO DE CORREO
            $message = $this->getMailer()->compose();
            $message->setSubject('ACEPTOR - Respuesta de Acta');
            $message->setTo($obj_creator->getCorreo());
            $message->setFrom(array('no-reply@aceptor.com' => 'Practil-Aceptor' ));
            $html = $this->getPartial('evaluar_acta/mensaje', array(
                'rpta'=>'2',
                'tipo'=>'ok',
                'texto'=>$nombre_user));
            $message->setBody($html, 'text/html');
            $this->getMailer()->send($message);
            // FIN DE CORREO*/
        }

    }elseif($obj_acta->getRespuesta()=='1'){
        $obj_creator = TbUsuarioPeer::retrieveByPK($obj_acta->getCreadorId());
        $nombre_user = $obj_creator->getNombre().' '.$obj_creator->getApePaterno();
        /* INICIO DE CORREO */
        $message = $this->getMailer()->compose();
        $message->setSubject('ACEPTOR - Respuesta de Acta');
        $message->setTo($obj_creator->getCorreo());
        $message->setFrom(array('no-reply@aceptor.com' => 'Practil-Aceptor' ));
        $html = $this->getPartial('evaluar_acta/mensaje', array(
            'owner'=>$nombre_user,
            'doc_object'=>$obj_acta,
            'tipo'=>'ok',
            'nombre_user'=>$attributes['nombre'][0].' '.$attributes['apellido'][0]));
        $message->setBody($html, 'text/html');
        $this->getMailer()->send($message);
        /* FIN DE CORREO */
    }

    if($rpta == "fin"){
        $criteriaActa= new Criteria();
        $criteriaActa->add(TbActaPeer::ID,$hdd_acta_id);
        $upd_acta = TbActaPeer::doSelectOne($criteriaActa);
        if(is_object($upd_acta))
        {
            $upd_acta->setEstado('2');
            $upd_acta->save();
        }
    }



    $this->redirect('home_login/index');

  }





}
